Implement dynamic mitigation for CVE-2018-3639 on Cortex-A76
authorDimitris Papastamos <[email protected]>
Wed, 16 May 2018 08:59:54 +0000 (09:59 +0100)
committerDimitris Papastamos <[email protected]>
Fri, 8 Jun 2018 10:46:31 +0000 (11:46 +0100)
commitd6b798097e23bc98814ced8406f4dc63df4078c5
tree548be6edab614effce85ce8f8c0090d245b1c541
parentee7cda31c759b39af7487ddd5ab799208f288c03
Implement dynamic mitigation for CVE-2018-3639 on Cortex-A76

The Cortex-A76 implements SMCCC_ARCH_WORKAROUND_2 as defined in
"Firmware interfaces for mitigating cache speculation vulnerabilities
System Software on Arm Systems"[0].

Dynamic mitigation for CVE-2018-3639 is enabled/disabled by
setting/clearning bit 16 (Disable load pass store) of `CPUACTLR2_EL1`.

NOTE: The generic code that implements dynamic mitigation does not
currently implement the expected semantics when dispatching an SDEI
event to a lower EL.  This will be fixed in a separate patch.

[0] https://developer.arm.com/cache-speculation-vulnerability-firmware-specification

Change-Id: I8fb2862b9ab24d55a0e9693e48e8be4df32afb5a
Signed-off-by: Dimitris Papastamos <[email protected]>
include/lib/cpus/aarch64/cortex_a76.h
lib/cpus/aarch64/cortex_a76.S